package com.duguo.dynamicmvc.factory.processor.controller;

import javassist.CtMethod;

import com.duguo.dynamicmvc.support.pathinfo.PathInfo;

public interface ControllerNameBuilder {

	public boolean isRootController(String controllerPath);

	public String getChildPath(String parentPath, String controllerPath);

	public String getSameLevelPath(PathInfo pathInfo, String controllerPath);

	public boolean isMultiLevelName(String controllerName);

	public String getFirstLevelName(String controllerName);

	public String getParentLevelName(String controllerName);

	public int getControllerLevel(String controllerName);

	public String getLastLevelName(String controllerName);

	public String getRemainLevelName(String controllerName);

	public boolean isDo(String methodName);

	public boolean isSetter(String methodName);

	public String getDoDefaultViewName(String methodName);

	public String getControllerPath(String controllerClassName);

	public String getControllerInternalInterfaceName(CtMethod targetCtMethod) throws Exception;

	public String getControllerInternalRootClassName();

	public String getControllerInternalClassName(String parentControllerName, String controllerPath, boolean isMultiActionController);

	public String getControllerParentClassName(String controllerClassName);

	public String getNormalizedName(String controllerName);

	public Object getParentController(Object currentController);
	
}
